<?php
namespace Admin\Controller;
use Think\Controller;
class AdminController extends Controller {
	
	//管理员登录
    public function loginAction(){
	$val=I('post.'); 
	if(!empty($val)){
		$Model=D("Admin"); // 实例化admin对象
		$password=md5($val['password']);
		$one=$Model->where("username='$val[username]' AND password='$password' ")->find();
		if(!empty($one)){
			    session('admin',$one);  //设置session
			 	$this->success('登陆成功', U('index/latout'));
				die();
			}else{
				 $this->error('用户名和密码错误');
				}
		}		
	$this->display();
    }
	
	//管理员列表
	public function listAction(){
		$Model=D("Admin"); // 实例化admin对象
		
		
		//搜索
		$keyword=I('get.keyword');
		$status=I('get.status');
		if(!empty($keyword)){
			$where['username']  = array('like', '%'.$keyword.'%');
			$map['_complex'] = $where;
			if($status != -1){
				$map['status']  = $status;
			}
		}
		
		//读取配置文件数据
		$Conf=D("Config"); // 实例化config对象
		$conf_one=$Conf->where(' id=1 ')->find();

		$count      = $Model->where($map)->count();// 查询满足要求的总记录数
		$Page       = new \Think\Page($count,$conf_one['Psize']);// 实例化分页类 传入总记录数和每页显示的记录数
		
		$Page->setConfig('prev','上一页');
		$Page->setConfig('next','下一页');
		$Page->setConfig('first','首页');
		$Page->setConfig('last','尾页');
		
		$Page->setConfig('header','<li><span class="rows">共 %TOTAL_ROW% 条记录</span></li>');
	
		
		$Page->setConfig('theme','%HEADER% %FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %PAGES%');
		
		
		$list = $Model->where($map)->order(' id asc ')->limit($Page->firstRow.','.$Page->listRows)->select();
		$this->assign('list',$list);// 赋值数据集
		
		$show       = $Page->show();// 分页显示输出
		$this->assign('page',$show);// 赋值分页输出
		
		

		$this->display();
		}
	
		
	//管理员增加--编辑
	public function saveAction(){
		
		$Role=D("Role"); // 实例化role对象
		
		//角色列表
		$role=$Role->where(" status=1 ")->select();
		$this->assign('role', $role);
		
		$Model=D("Admin"); // 实例化admin对象
		//编辑
		$id=I('get.id'); // 取ID
		$one=$Model->where(" id=$id ")->find();
		$this->assign('one', $one);
		
		//
		$lang=empty($id)?'增加':'编辑';
		$this->assign('lang', $lang);
		
		$data=I('post.'); 
		
		if(!empty($data)){
			
			if(empty($id)){
				//验证
				if (!$Model->create()){     // 如果创建失败 表示验证没有通过 输出错误提示信息   
					$this->success($Model->getError(), U('admin/save'));
					die();
				}
			}
			
			
			if(empty($id)){
				
				$data['password']=md5($data['password']);
			
				$insert=$Model->data($data)->add();
			
				if($insert){
					$this->success('增加成功', U('admin/list'));
					die();
					}else{
					 $this->error('增加失败');
					 die();
					}
				}else{
					if(!empty($data['password'])){
						$data['password']=md5($data['password']);
					}else{
						unset($data['password']);
						}
					$update=$Model->where(" id=$id ")->data($data)->save(); // 根据条件更新记录
					if($update){
							$this->success('编辑成功', U('admin/list'));
							die();
						}else{
							$this->error('编辑失败');
							die();
							}
					
					}
			}
			$this->display();
		}
		
		
	//管理员删除
	public function delAction(){
		$Model=D("Admin"); // 实例化admin对象
		$id=I('get.id'); // 取ID
		$one=$Model->where(' id='.$id)->find();
		if(!empty($one)){
			$del=$Model->where(" id=$id ")->delete(); // 删除id为什么的用户数据	
			if($del){
				$this->success('删除成功', U('admin/list'));
				die();
				}else{
				$this->error('删除失败');
				die();
				}
			
		}	
	}
	
	//批量操作
	public function batchdelAction(){
		$Model=D("Admin"); // 实例化admin对象
		/*批量删除*/
		$batch=I('post.del');
		if(!empty($batch)){
			$id=I('post.id');
			foreach($id as $key=>$val){	
				$Model->where(" id=$val ")->delete(); // 删除id为什么的用户数据		
				}
		}
		
		/*批量审核*/
		$batch=I('post.status1');
		if(!empty($batch)){	
			$id=I('post.id');
			foreach($id as $key=>$val){		
				$Model->where(" id=$val ")->save($data=array('status'=>1)); // 根据条件更新记录
				}
		}
		
		/*批量未审核*/
		$batch=I('post.status0');
		if(!empty($batch)){	
			$id=I('post.id');
			foreach($id as $key=>$val){
				$Model->where(" id=$val ")->save($data=array('status'=>0)); // 根据条件更新记录
				}
		}
		
		$this->success('操作成功', U('admin/list'));
		
	}		
	
	
	//管理员退出
	public function logoutAction(){	
		session('admin',null); // 删除name
		if(empty($_SESSION['admin'])){
			$this->success('退出成功', U('Admin/login'));
			die();
			}else{
			$this->error('退出失败');	
			die();
			}
	}
	
}